11 / 18

Cloud network topologyURL copied

direction: right
internet: {
  label: Internet
  icon: "https://api.iconify.design/mdi:cloud-outline.svg"
}

vpc: {
  public: {
    alb: {
      label: ALB
      icon: "https://api.iconify.design/simple-icons:amazonaws.svg"
    }
    bastion: {
      label: Bastion
      icon: "https://api.iconify.design/mdi:shield-home.svg"
    }
  }
  private: {
    app1: {
      label: App Node 1
      icon: "https://api.iconify.design/mdi:application-braces-outline.svg"
    }
    app2: {
      label: App Node 2
      icon: "https://api.iconify.design/mdi:application-braces-outline.svg"
    }
    worker: {
      label: Worker
      icon: "https://api.iconify.design/mdi:cog-outline.svg"
    }
  }
  data: {
    db: {
      label: Postgres
      icon: "https://api.iconify.design/logos:postgresql.svg"
    }
    cache: {
      label: Redis
      icon: "https://api.iconify.design/logos:redis.svg"
    }
  }
}

internet -> vpc.public.alb: HTTPS
vpc.public.bastion -> vpc.private.app1: SSH
vpc.public.bastion -> vpc.private.app2: SSH
vpc.public.alb -> vpc.private.app1: HTTP
vpc.public.alb -> vpc.private.app2: HTTP
vpc.private.app1 -> vpc.data.db: SQL
vpc.private.app2 -> vpc.data.db: SQL
vpc.private.worker -> vpc.data.cache: read/write
VPC Topology
Copied
```d2
---
title: VPC Topology
width: 90vw
height: 540px
layout: elk
---
direction: right
internet: {
  label: Internet
  icon: "https://api.iconify.design/mdi:cloud-outline.svg"
}

vpc: {
  public: {
    alb: {
      label: ALB
      icon: "https://api.iconify.design/simple-icons:amazonaws.svg"
    }
    bastion: {
      label: Bastion
      icon: "https://api.iconify.design/mdi:shield-home.svg"
    }
  }
  private: {
    app1: {
      label: App Node 1
      icon: "https://api.iconify.design/mdi:application-braces-outline.svg"
    }
    app2: {
      label: App Node 2
      icon: "https://api.iconify.design/mdi:application-braces-outline.svg"
    }
    worker: {
      label: Worker
      icon: "https://api.iconify.design/mdi:cog-outline.svg"
    }
  }
  data: {
    db: {
      label: Postgres
      icon: "https://api.iconify.design/logos:postgresql.svg"
    }
    cache: {
      label: Redis
      icon: "https://api.iconify.design/logos:redis.svg"
    }
  }
}

internet -> vpc.public.alb: HTTPS
vpc.public.bastion -> vpc.private.app1: SSH
vpc.public.bastion -> vpc.private.app2: SSH
vpc.public.alb -> vpc.private.app1: HTTP
vpc.public.alb -> vpc.private.app2: HTTP
vpc.private.app1 -> vpc.data.db: SQL
vpc.private.app2 -> vpc.data.db: SQL
vpc.private.worker -> vpc.data.cache: read/write
```